package org.eiahe.hr.attendance.service;

import org.eiahe.hr.attendance.domain.bo.MonthlyAttendanceStatBo;
import org.eiahe.hr.attendance.domain.vo.MonthlyAttendanceStatVo;
import org.ehe.common.mybatis.core.page.PageQuery;
import org.ehe.common.mybatis.core.page.TableDataInfo;

import java.util.List;

/**
 * 月度考勤统计Service接口
 *
 * @author zhangnn
 */
public interface IMonthlyAttendanceStatService {

    /**
     * 查询月度考勤统计列表
     */
    TableDataInfo<MonthlyAttendanceStatVo> queryPageList(MonthlyAttendanceStatBo bo, PageQuery pageQuery);

    /**
     * 查询月度考勤统计列表
     */
    List<MonthlyAttendanceStatVo> queryList(MonthlyAttendanceStatBo bo);

    /**
     * 根据ID查询月度考勤统计
     */
    MonthlyAttendanceStatVo queryById(Long statId);

    /**
     * 生成月度考勤统计(定时任务调用)
     * 
     * @param year  年份
     * @param month 月份
     */
    void generateMonthlyStats(Integer year, Integer month);

    /**
     * 重新生成指定员工的月度统计
     */
    void regenerateEmployeeStats(String employeeNo, Integer year, Integer month);
}
